<ui:composition template="/WEB-INF/templates/layout.xhtml"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:p="http://primefaces.org/ui"
                >
    <ui:define name="content">
        <h:form id="formhorario">  

            <p:growl id="messages" showDetail="true" />
            <p:panel header="Horario">
                <h:panelGrid columns="2">
                    <h:panelGrid columns="2">
                        <p:outputLabel for="formhorarioprofesor" value="Profesor:"/>
                        <p:outputPanel>
                            <p:inputText size="80" value="#{horarioController.searchParamProfesor}" id="formhorarioprofesor"/>
                            <p:watermark for="formhorarioprofesor" value="Introduzca N.I.F. o Nombre" /> 
                            <p:commandButton process="@this formhorarioprofesor" update="idtablelistprofesor dialogprofesor" actionListener="#{horarioController.buscarListaProfesor()}" icon="search"/>
                        </p:outputPanel>
                        <p:outputLabel for="formhorariovehiculo" value="Vehiculo:"/>
                        <p:outputPanel>
                            <p:inputText id="formhorariovehiculo" value="#{horarioController.profesor.vehiculo.matricula}"/>
                            <p:commandButton process="@this formhorariovehiculo" update="idtablelistvehiculo dialogvehiculo" actionListener="#{horarioController.buscarListaVehiculo()}" icon="search"/>
                        </p:outputPanel>

                        <h:outputLabel value="Seleccionar la semana:"/>
                        <p:outputPanel>
                            <p:outputPanel>
                                <p:calendar id="idfechacalendar" value="#{horarioController.fecha}" showOn="button" /> 
                                <p:watermark for="idfechacalendar" value="dd/mm/aa" /> 
                            </p:outputPanel>
                            <p:commandButton process="@this idfechacalendar" update="idtablahorario idfechasrango messages" actionListener="#{horarioController.getDayOfTheWeek()}" value="Asignar"/>
                        </p:outputPanel>
                        <h:outputLabel value="Semana:"/>
                        <p:outputPanel id="idfechasrango">
                            <h:outputLabel style="color: orange; font-size:small; font-weight: bold;" value="#{horarioController.formatFecha(horarioController.fechaInicio)}"/>
                            <h:outputLabel value="-"/>
                            <h:outputLabel style="color: blue; font-size:small; font-weight: bold;;" value="#{horarioController.formatFecha(horarioController.fechaFin)}"/>
                        </p:outputPanel>
                    </h:panelGrid>
                    <h:panelGrid columns="1">
                        <p:commandButton update="@form" value="Guardar temporalmente" actionListener="#{horarioController.save('T')}"/>
                        <p:commandButton update="@form"  value="Guardar permanentemente" actionListener="#{horarioController.save('F')}"/>
                    </h:panelGrid>
                </h:panelGrid>
                <p:dataTable 
                    scrollable="true" scrollWidth="900"  scrollHeight="430" id="idtablahorario" var="horariovar" value="#{horarioController.listHorario}">
                    <p:column headerText="Hora" width="60">
                        <h:outputText value="#{horariovar.hora}" />  
                    </p:column>
                    <p:column headerText="Lunes" width="150">
                        <p:commandButton icon="search" title="Buscar alumno" update=":formhorario:dialog" actionListener='#{horarioController.newAlumno(horariovar,"Lunes")}' rendered='#{horariovar.lunes eq null and horariovar.estado != "F"}'/>
                        <p:commandButton icon="delete" process="@this" title="Eliminar alumno" actionListener='#{horarioController.deleteAlumno(horariovar,"Lunes")}' rendered='#{(horariovar.lunes != null and horariovar.estado != "F")}'/>
                        #{horariovar.lunes eq null?null:horariovar.lunes.nombres}
                        #{horariovar.lunes eq null?null:horariovar.lunes.apellidos}
                    </p:column>
                    <p:column headerText="Martes" width="150">
                        <p:commandButton icon="search" title="Buscar alumno" update=":formhorario:dialog" actionListener='#{horarioController.newAlumno(horariovar,"Martes")}' rendered='#{horariovar.martes eq null and horariovar.estado != "F"}'/>
                        <p:commandButton icon="delete" process="@this" title="Eliminar alumno" actionListener='#{horarioController.deleteAlumno(horariovar,"Martes")}' rendered='#{(horariovar.martes != null and horariovar.estado != "F")}'/>
                        #{horariovar.martes eq null?null:horariovar.martes.nombres}
                        #{horariovar.martes eq null?null:horariovar.martes.apellidos}
                    </p:column>
                    <p:column headerText="Miercoles" width="150">
                        <p:commandButton icon="search" title="Buscar alumno" update=":formhorario:dialog" actionListener='#{horarioController.newAlumno(horariovar,"Miercoles")}' rendered='#{horariovar.miercoles eq null and horariovar.estado != "F"}'/>
                        <p:commandButton icon="delete" process="@this" title="Eliminar alumno" actionListener='#{horarioController.deleteAlumno(horariovar,"Miercoles")}' rendered='#{(horariovar.miercoles != null and horariovar.estado != "F")}'/>
                        #{horariovar.miercoles eq null?null:horariovar.miercoles.nombres}
                        #{horariovar.miercoles eq null?null:horariovar.miercoles.apellidos}
                    </p:column>
                    <p:column headerText="Jueves" width="150">
                        <p:commandButton icon="search" title="Buscar alumno" update=":formhorario:dialog" actionListener='#{horarioController.newAlumno(horariovar,"Jueves")}' rendered='#{horariovar.jueves eq null and horariovar.estado != "F"}'/>
                        <p:commandButton icon="delete" process="@this" title="Eliminar alumno" actionListener='#{horarioController.deleteAlumno(horariovar,"Jueves")}' rendered='#{(horariovar.jueves != null and horariovar.estado != "F")}'/>
                        #{horariovar.jueves eq null?null:horariovar.jueves.nombres}
                        #{horariovar.jueves eq null?null:horariovar.jueves.apellidos}
                    </p:column>
                    <p:column headerText="Viernes" width="150">
                        <p:commandButton icon="search" title="Buscar alumno" update=":formhorario:dialog" actionListener='#{horarioController.newAlumno(horariovar,"Viernes")}' rendered='#{horariovar.viernes eq null and horariovar.estado != "F"}'/>
                        <p:commandButton icon="delete" process="@this" title="Eliminar alumno" actionListener='#{horarioController.deleteAlumno(horariovar,"Viernes")}' rendered='#{(horariovar.viernes != null and horariovar.estado != "F")}'/>
                        #{horariovar.viernes eq null?null:horariovar.viernes.nombres}
                        #{horariovar.viernes eq null?null:horariovar.viernes.apellidos}
                    </p:column>
                </p:dataTable>
                <p:dialog id="dialog"
                          widgetVar="componentDiag"
                          minWidth="500"
                          visible="#{horarioController.renderTable}">
                    <p:inputText value="#{horarioController.searchParamAlumno}"/>
                    <p:commandButton value="asignar" update="idtablelistalumno dialog" actionListener="#{horarioController.buscarListaAlumno()}"/>
                    <p:dataTable id='idtablelistalumno' lazy="true" paginator="true" rows="5" paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" value="#{horarioController.listAlumno}" var="alumnovar">
                        <p:column headerText="Nif">
                            #{alumnovar.nif}
                        </p:column>
                        <p:column headerText="Nombres">
                            #{alumnovar.nombres}
                        </p:column>
                        <p:column headerText="Apellidos">
                            #{alumnovar.apellidos}
                        </p:column>
                        <p:column headerText="Telefono">
                            #{alumnovar.telefono}
                        </p:column>
                        <p:column headerText="Accion">
                            <p:commandLink value="Seleccionar" 
                                           onclick="componentDiag.hide();" 
                                           process="@this"
                                           actionListener="#{horarioController.onRowSelectAlumno(alumnovar)}"
                                           update=":formhorario:idtablahorario :formhorario:dialog"  >
                            </p:commandLink>
                        </p:column>
                    </p:dataTable>
                </p:dialog>
                <p:dialog id="dialogprofesor"
                          widgetVar="componentDiagprofesor"
                          minWidth="500"
                          visible="#{horarioController.renderTableProfesor}">
                    <p:dataTable id='idtablelistprofesor' lazy="true" paginator="true" rows="5" paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" value="#{horarioController.listProfesor}" var="profesorvar">
                        <p:column headerText="Nif">
                            #{profesorvar.nif}
                        </p:column>
                        <p:column headerText="Nombres">
                            #{profesorvar.nombres}
                        </p:column>
                        <p:column headerText="Apellidos">
                            #{profesorvar.apellidos}
                        </p:column>
                        <p:column headerText="Telefono">
                            #{profesorvar.telefono}
                        </p:column>
                        <p:column headerText="Accion">
                            <p:commandLink value="Seleccionar" 
                                           onclick="componentDiagprofesor.hide();" 
                                           process="@this"
                                           actionListener="#{horarioController.onRowSelectProfesor(profesorvar)}"
                                           update=":formhorario:formhorarioprofesor :formhorario:formhorariovehiculo :formhorario:dialogprofesor"  >
                            </p:commandLink>
                        </p:column>
                    </p:dataTable>
                </p:dialog>
                <p:dialog id="dialogvehiculo"
                          widgetVar="componentDiagvehiculo"
                          minWidth="500"
                          visible="#{horarioController.renderTableVehiculo}">
                    <p:dataTable id='idtablelistvehiculo' lazy="true" paginator="true" rows="5" paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" value="#{horarioController.listVehiculo}" var="vehiculovar">
                        <p:column headerText="Matricula">
                            #{vehiculovar.matricula}
                        </p:column>
                        <p:column headerText="Kilometro">
                            #{vehiculovar.km}
                        </p:column>
                        <p:column headerText="fecha revision">
                            #{horarioController.formatFecha(vehiculovar.fecharevision)}
                        </p:column>
                        <p:column headerText="Fecha itv">
                            #{horarioController.formatFecha(vehiculovar.fechaitv)}
                        </p:column>
                        <p:column headerText="Accion">
                            <p:commandLink value="Seleccionar" 
                                           onclick="componentDiagvehiculo.hide();" 
                                           process="@this"
                                           actionListener="#{horarioController.onRowSelectVehiculo(vehiculovar)}"
                                           update=":formhorario:formhorariovehiculo :formhorario:dialogprofesor"  >
                            </p:commandLink>
                        </p:column>
                    </p:dataTable>
                </p:dialog>
                <p:remoteCommand name="lazyload"  update="idtablahorario"/> 
                <p:remoteCommand name="updateProfParam"  update="formhorarioprofesor"/> 
            </p:panel>
        </h:form>  
    </ui:define>
</ui:composition>
